<template>
  <el-card class="box-card" style="margin:10px 0">
    <!-- 头部区域 -->
    <div slot="header" class="clearfix">
      <!-- @tab-click="handleClick" -->
      <!-- 头部左侧内容 -->
      <el-tabs class="tab" v-model="activeName">
        <el-tab-pane label="销售额" name="sale"></el-tab-pane>
        <el-tab-pane label="访问量" name="visite"></el-tab-pane>
      </el-tabs>
      <!-- 头部右侧内容 -->
      <div class="right">
        <span @click="setDay">今日</span>
        <span @click="setWeek">本周</span>
        <span @click="setMon">本月</span>
        <span @click="setYear">本年</span>
        <!--  v-model="value1" -->
        <el-date-picker
          v-model="date"
          class="date"
          size="mini"
          type="datetimerange"
          range-separator="-"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd"
        ></el-date-picker>
      </div>
    </div>
    <!-- 中间内容区域 -->
    <div>
      <el-row :gutter="10">
        <el-col :span="18">
          <!-- 容器 -->
          <div class="charts" ref="charts"></div>
        </el-col>
        <el-col :span="6">
          <h4>门店{{title}}排名</h4>
          <ul>
            <li>
              <span class="rindex">1</span>
              <span>肯德基</span>
              <span class="rvalue">123,433</span>
            </li>
            <li>
              <span class="rindex">2</span>
              <span>麦当劳</span>
              <span class="rvalue">278,278</span>
            </li>
            <li>
              <span class="rindex">3</span>
              <span>海底捞</span>
              <span class="rvalue">8,278</span>
            </li>
            <li>
              <span>4</span>
              <span>汉堡王</span>
              <span class="rvalue">8,148</span>
            </li>
            <li>
              <span>5</span>
              <span>麦当劳</span>
              <span class="rvalue">278,278</span>
            </li>
          </ul>
        </el-col>
      </el-row>
    </div>
  </el-card>
</template>

<script>
import echarts from 'echarts'
import dayjs from 'dayjs'
import { mapState } from 'vuex'
export default {
  name: 'Sale',
  data () {
    return {
      activeName: 'sale',
      myCharts: null,
      date: [] // 收集日历数据
    }
  },
  methods: {
    setDay () {
      const day = dayjs().format('YYYY-MM-DD')
      this.date = [day, day]
    },
    setWeek () {
      const start = dayjs().day(1).format('YYYY-MM-DD')
      const end = dayjs().day(7).format('YYYY-MM-DD')
      this.date = [start, end]
    },
    setMon () {
      const start = dayjs().startOf('month').format('YYYY-MM-DD')
      const end = dayjs().endOf('month').format('YYYY-MM-DD')
      this.date = [start, end]
    },
    setYear () {
      const start = dayjs().startOf('year').format('YYYY-MM-DD')
      const end = dayjs().endOf('year').format('YYYY-MM-DD')
      this.date = [start, end]
    }
  },
  computed: {
    title () {
      return this.activeName === 'sale' ? '销售额' : "访问量"
    },
    // 从仓库捞数据
    ...mapState({
      listState: state => state.home.homeData
    })
  },
  mounted () {
    this.myCharts = echarts.init(this.$refs.charts)
    this.myCharts.setOption({
      title: {
        text: '销售额趋势'
      },
      tooltip: {
        trigger: 'axis',
        axisPointer: {
          type: "shadow",
        },
      },
      grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true,
      },
      xAxis: [
        {
          type: "category",
          data: [],
          axisTick: {
            alignWithLabel: true,
          },
        },
      ],
      yAxis: [
        {
          type: "value",
        },
      ],
      series: [
        {
          name: "Direct",
          type: "bar",
          barWidth: "60%",
          data: [],
          color: 'cyan',
        },
      ],
    })
  },
  // 监听属性
  watch: {
    title () {
      // 重新修改图表配置的数据
      this.myCharts.setOption({
        title: {
          text: this.title + "趋势"
        },
        xAxis: {
          data: this.title == '销售额' ? this.listState.orderFullYearAxis : this.listState.userFullYearAxis,
        },
        series: [
          {
            name: "Direct",
            type: "bar",
            barWidth: "60%",
            data: this.title == '销售额' ? this.listState.orderFullYear : this.listState.userFullYear,
            color: 'cyan',
          },
        ],

      })
    },
    // 监听listState的变化，一有数据就立马展示
    listState () {
      this.myCharts.setOption({
        title: {
          text: '销售额趋势'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: "shadow",
          },
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true,
        },
        xAxis: [
          {
            type: "category",
            data: this.listState.orderFullYearAxis,
            axisTick: {
              alignWithLabel: true,
            },
          },
        ],
        yAxis: [
          {
            type: "value",
          },
        ],
        series: [
          {
            name: "Direct",
            type: "bar",
            barWidth: "60%",
            data: this.listState.orderFullYear,
            color: 'cyan',
          },
        ],
      })
    }
  }
}
</script>

<style scoped>
.clearfix {
  display: flex;
  justify-content: space-between;
  position: relative;
}
.tab {
  width: 100%;
}
.right {
  position: absolute;
  right: 0;
}
.right span {
  margin: 0 10px;
  cursor: pointer;
}
.date {
  width: 350px;
  margin-left: 20px;
}
.charts {
  width: 100%;
  height: 400px;
}
ul {
  list-style: none;
  width: 100%;
  height: 300px;
  padding: 0;
}
ul li {
  height: 8%;
  width: 100%;
  margin: 8px 0;
}
ul li span {
  margin: 0 10px;
}
.rindex {
  float: left;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background-color: black;
  color: white;
  text-align: center;
}
.rvalue {
  float: right;
}
</style>